<%-- 
    Document   : addJSON
    Created on : 12-feb-2014, 13:38:30
    Author     : Juan
--%>

<%@page import="graphs.GraphADT"%>
<%@page import="kegg.Pathway"%>
<%@page import="java.util.List"%>
<%@page import="archivos.Json"%>
<%@page import="archivos.UbicacionArchivos"%>
<%@page import="utils.OS"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%
    /*Se reocgen diferentes variables de session*/
    String red = (String) session.getAttribute("red");//Nombre del fichero a pintar
    String opcionEleg = (String) session.getAttribute("opcionElegida");//Opcion elegida
    String miRed = (String) session.getAttribute("opcionRedEntrada");//Fichero opcional

    GraphADT grafoUser = (GraphADT) session.getAttribute("grafoUser");

    /*Dependiendo de donde proceda la llamada tendra que generar una ruta u otra
     - Sif
     -> Carpeta de session del usuario dentro del organismo
     - Kegg
     * redEntrada
     -> Carpeta de session del usuario dentro del organismo
     * null
     -> Carpeta sif del organismo
     - EnrichNetGraph
     -> Carpeta enrichNet de la raiz
     */
    if (opcionEleg.equals("sif")) {
        GraphADT grafoUser2 = (GraphADT) session.getAttribute("grafoUser2");


        /*Se llama al metodo de la clase Json para crear el archivo .json, pasandole por 
         parámetro un grafo (retornado por la llamada a leeSif), el nombre y out*/
        if (miRed.equals("redEntrada")) {
            Json.crearArchivoJsonUsuario(grafoUser, red, out);
        } else {
            Json.crearArchivoJsonUsuario(grafoUser2, red, out);
        }

    } else if (opcionEleg.equals("kegg")) {
        if (miRed.equals("redEntrada")) {

            /*Se llama al metodo de la clase Json para crear el archivo .json, pasandole por 
             parámetro un grafo (retornado por la llamada a leeSif), el nombre y out*/
            Json.crearArchivoJsonUsuario(grafoUser, red, out);

        } else {
            List<Pathway> ps = (List<Pathway>) session.getAttribute("ps");//Nombre del fichero a pintar
            boolean enc = false;
            int i = 0;

            while (!enc) {
                if (ps.get(i).getTitle().equals(red)) {
                    Json.crearArchivoJsonUsuario(ps.get(i).getRed(), red, out);
                    enc = true;
                }
                i++;
            }

        }
    } else if (opcionEleg.equals("enrichNetGraph")) {


        /*Se llama al metodo de la clase Json para crear el archivo .json, pasandole por 
         parámetro un grafo (retornado por la llamada a leeSif), el nombre y out*/
        Json.crearArchivoJsonUsuario(grafoUser, red, out);

    } else if (opcionEleg.equals("goganpa")) {
        red = (String) session.getAttribute("goganpaRed");
        /*Se comprueba que la red no sea nula para poder pintar el grafo*/
    //if (red != null) {
        /*Se le añade la extensión al nombre para poder encontrar el fichero*/

        /*Se llama al metodo de la clase Json para crear el archivo .json, pasandole por 
         parámetro un grafo (retornado por la llamada a leeSif), el nombre y out*/
        Json.crearArchivoJsonUsuario(grafoUser, red, out);

        //}
    } else if (opcionEleg.equals("go")) {
        if (miRed.equals("redEntrada")) {

            /*Se llama al metodo de la clase Json para crear el archivo .json, pasandole por 
             parámetro un grafo (retornado por la llamada a leeSif), el nombre y out*/
            Json.crearArchivoJsonUsuario(grafoUser, red, out);

        } else {
            GraphADT grafoUser2 = (GraphADT) session.getAttribute("grafoUser2");
            Json.crearArchivoJsonUsuario(grafoUser2, red, out);
        }

    }

    out.flush();


%>
